/*!
 * \file ILogHandler.h
 * \project	WonderTrader
 *
 * \author Wesley
 * \date 2020/03/30
 * 
 * \brief 日志转发模块接口定义
 * 
 * \details 本文件定义了日志处理器接口ILogHandler，用于：
 *          - 自定义日志输出处理逻辑
 *          - 支持多种日志级别处理
 *          - 可扩展的日志转发机制
 *          - 与WonderTrader日志系统的集成接口
 */
#pragma once
#include "WTSMarcos.h"
#include "WTSTypes.h"

NS_WTP_BEGIN

/*!
 * \brief 日志处理器接口
 * 
 * \details 自定义日志处理器的基础接口，实现此接口可以：
 *          - 自定义日志输出格式
 *          - 将日志转发到不同的输出目标（文件、网络、数据库等）
 *          - 按日志级别进行差异化处理
 *          - 集成第三方日志系统
 * 
 * \note 实现类需要确保线程安全，因为可能在多线程环境中被调用
 * 
 * \author Wesley
 * \date 2020/03/30
 */
class ILogHandler
{
public:
	/*!
	 * \brief 处理日志追加事件
	 * 
	 * \param ll 日志级别，参见WTSLogLevel枚举定义
	 * \param msg 日志消息内容，C风格字符串
	 * 
	 * \details 当WonderTrader日志系统产生新的日志消息时，会调用此方法。
	 *          实现者可以根据日志级别进行不同的处理：
	 *          - LL_TRACE/LL_DEBUG：开发调试信息
	 *          - LL_INFO：一般运行信息
	 *          - LL_WARN：警告信息
	 *          - LL_ERROR：错误信息
	 *          - LL_FATAL：致命错误信息
	 * 
	 * \note 此方法必须实现为线程安全，避免在多线程环境中出现数据竞争
	 * \note 实现应尽量高效，避免阻塞日志系统的正常运行
	 */
	virtual void handleLogAppend(WTSLogLevel ll, const char* msg) = 0;
};

NS_WTP_END